Method for displacably guiding a displaceable machine element of a numerically controlled tool machine or production machine

ABSTRACT

The invention relates to a method for displacably guiding a displaceable machine element ( 8 ) of a numerically controlled tool machine or product machine on a predetermined displacement path (S) of a machine element ( 8 ). Supporting points ( 32 ) are defined in the work chamber ( 31 ) of the machine. The maximum possible path bolt (S&lt; &gt;) and/or the maximum possible path acceleration (S&lt;..&gt;) and/or the maximum possible path speed (S&lt;.&gt;) of the machine element ( 8 ) is determined or predetermined on each supporting point ( 32 ) and the displacement of the machine element ( 8 ) on the displacement path (S) is carried out using the maximum possible path bolt (S&lt; &gt;) and/or the maximum possible path acceleration (S&lt;..&gt;) and/or the maximum possible path speed (S&lt;. &gt;) of the machine element ( 8 ). Said method can be produced in a simple and economical manner with optimum displacement guiding of a displaceable machine element ( 8 ) of a numerically controlled tool machine or production machine on a predetermined displacement path (S) of a machine element ( 8 ).

The invention relates to a method for guiding the movement of a movable machine element of a numerically controlled machine tool or production machine on a prescribed movement path of the machine element.

A customarily used electric drive system of a machine tool or production machine is illustrated in the form of a block diagram in FIG. 1. In the case of the two-axis machine illustrated by the example in FIG. 1, a controller 1 controls the two drive axes 6 a and 6 b of the machine. The drive axis 6 a is composed in this case of a closed-loop control 2 a, an inverter 3 a, a drive motor 4 a and a mechanism 5 a connected to the drive motor 4 a. The drive axis 6 b is composed of a closed-loop control 2 b, an inverter 3 b, a drive motor 4 b and a mechanism 5 b connected to the drive motor 4 b. The controller 1 prescribes setpoint positions separately for each drive axis in accordance with a prescribed movement path of a machine element that can be moved by means of the drive axes 6 a and 6 b. The closed-loop control 2 a or 2 b controls the respectively associated motor position angle of the motor 4 a or 4 b via the inverter 3 a or 3 b in accordance with the nominal defaults from the controller such that the prescribed movement path of the machine element is executed with the aid of the mechanism 5 a or 5 b connected to the respective drive motor 4 a or 4 b. During the machining process, a machine element is understood in this case both as a tool such as a milling head, for example, and as a workpiece.

FIG. 2 illustrates such a movement path S for the two-axis machine in accordance with FIG. 1, by way of example. Here, a machine element 8 designed as a milling head is guided on the movement path S. The drive axis 6 a from FIG. 1 is responsible in this case for the traveling movement in the x-direction, while the drive axis 6 b is responsible for the traveling movement in the y-direction. The movement path S is composed here of juxtaposed working points, of which one working point 7 is illustrated for the sake of clarity.

For this purpose, the numerical controller 1 in accordance with FIG. 1 processes subprograms that have been compiled, for example with the aid of a CAD/CAM system. The geometric data, for example for machining a workpiece, are stored in the controller 1. The task of the controller 1 consists in generating nominal variables for the drive axes of the machine, such that the machine element 8 is guided on the desired movement path S. Additional technical information, in particular knowledge of the properties of the machine, is required for this purpose. These properties such as, for example the maximum rotational speed of the drives, the maximum possible acceleration of the drives, or the maximum driving torques of the drive motors are stored in machine data and known to the controller 1. The movement guidance must now be planned by the controller 1 such that none of the prescribed restrictions (for example maximum possible acceleration of a drive motor) are violated. The thereby resulting movement profiles of the drive motors of the individual drive axes of the machine must be capable of realization. The planning of the movement guidance makes use for this purpose of the time derivatives of the path length s which are commercially available.

The principle of the planning of such movement guidance of a machine element is illustrated schematically in FIG. 3. In accordance with the prescribed movement path S having the path length s traversed by the machine element 8, the movement guidance calculates the path jerk

, which represents the third time derivative of the path length S and which is fed as input variable to the so-called three memory model illustrated in FIG. 3. The path jerk

is the highest time derivative in the integration chain, which is formed by the integrators 9 a, 9 b and 9 c. A path acceleration {umlaut over (s)} is calculated from the path jerk

, a path speed {dot over (s)} is calculated from the path acceleration {umlaut over (s)} by further integration, and the path length s is calculated from the path speed {dot over (s)} by further integration.

In accordance with the specific kinematic transformation valid for the respective machine kinematics and known to the person skilled in the art, the path length s, path speed {dot over (s)}, the path acceleration {umlaut over (s)} and path jerk

can be used to calculate for each motor of the machine participating in the movement the associated nominal motor position angle φ_(MS), the associated nominal motor angle of velocity {dot over (φ)}_(MS), the associated nominal motor angular acceleration {umlaut over (φ)}_(MS), as well as the associated nominal motor angular jerk

_(MS). The respective nominal motor position angle φ_(MS) forms the respective setpoint for the respectively associated position control loop (see FIG. 5) of the responsible closed-loop control 2 a or 2 b in accordance with FIG. 1 (an associated nominal motor position angle φ_(MS) is transferred per drive axis, that is to say the circuit illustrated in FIG. 3 exists separately for each drive axis of the machine). This helps to ensure that the current position of the machine element (for example of a milling head or another tool or else a workpiece) follows the prescribed setpoint.

By means of targeted stipulation of the input variable of path jerk

, or the other variables (path acceleration {umlaut over (s)}, path speed s and path length s) can be transformed by integration from one state into another via suitable intermediate values such that all restrictions can be checked and observed. The restrictions establish the shortest duration of the machining operation. This signifies in the inverse conclusion that the movement guidance is time optimum whenever at least one variable reaches its possible maximum at each instant. The restrictions that have to be taken into account in the case of movement guidance have a correspondence to the real machine. Some assignments are possible without any problem and so, for example together with gear ratios and screw pitches of, for example, feed screws, the maximum rotational speed of the drives yields a maximum displacement speed.

However, the acceleration capability of the drive axes of the machine is limited by the maximum possible driving torques of the drive motors. However, the calculation of the driving torques to be applied for the purpose of traveling movement presupposes an exact knowledge of the machine kinematics. In the simplest case, this means taking account of a concentrated mass or of a concentrated moment of inertia in order to convert the acceleration known from the planned movement guidance into the associated driving torque. This simple conversion is not always possible. Many machine kinematics exist of which the drive axes have mechanical couplings. It is necessary in this case to apply the so-called Lagrange equations, which exhibit the relationship between the driving torques, the drive angles, the corresponding time derivatives of the drive angles and the corresponding inertia terms. Lagrange  energy  function  L = E_(kin) − E_(pot) ${{Lagrange}\quad{formalism}\quad Q_{i}} = {{\frac{\mathbb{d}\quad}{\mathbb{d}t}\left( \frac{\partial L}{\partial{\overset{.}{q}}_{i}} \right)} - \frac{\partial L}{\partial{\overset{.}{q}}_{i}}}$

-   q_(i): generalized position coordinates of the kinematics -   Qi: generalized forces of the kinematics -   E_(kin): kinetic energy of all the masses -   E_(pot): potential energy of all the masses

In the case of a machine, the position coordinates q_(i) correspond to the motor position angles φ_(Mi) and the generalized forces Q₁ correspond to the driving torques d_(Mi) of the ith drives (i=1 . . . n).

The application of the Lagrange formalism leads to: $\begin{matrix} {{\varphi_{Mi} = {\varphi_{Mi}(s)}}{{\overset{.}{\varphi}}_{Mi} = {\frac{\mathbb{d}\varphi_{Mi}}{\underset{\underset{\varphi_{Mi}}{︸}}{\mathbb{d}s}} \cdot \overset{.}{s}}}{{\overset{..}{\varphi}}_{Mi} = {{\frac{\mathbb{d}^{2}\varphi_{Mi}}{\underset{\underset{\varphi_{Mi}}{︸}}{\mathbb{d}s^{2}}} \cdot {\overset{.}{s}}^{2}} + {\frac{\mathbb{d}\varphi_{Mi}}{\mathbb{d}s} \cdot \overset{..}{s}}}}} & (20) \end{matrix}$

-   θ_(ii)=main moments of inertia -   θ_(ij)=coupling moments of inertia -   c_(ij)=Coriolis coefficients -   z_(ij)=centrifugal coefficients

If the motor position angles φ_(Mi) are given in the form of the arc length s in accordance with the relationships φ_(Mi) = φ_(Mi)(s) ${\overset{.}{\varphi}}_{Mi} = {\frac{\mathbb{d}\varphi_{Mi}}{\underset{\underset{\varphi_{Mi}}{︸}}{\mathbb{d}s}} \cdot \overset{.}{s}}$ ${\overset{..}{\varphi}}_{Mi} = {{\frac{\mathbb{d}^{2}\varphi_{Mi}}{\underset{\underset{\varphi_{Mi}}{︸}}{\mathbb{d}s^{2}}} \cdot {\overset{.}{s}}^{2}} + {\frac{\mathbb{d}\varphi_{Mi}}{\mathbb{d}s} \cdot \overset{..}{s}}}$ the equation (20) has the form $\begin{matrix} {d_{Mi} = {{\underset{\underset{\text{:} = {c_{2,i}{(s)}}}{︸}}{\left( {{\theta_{ii} \cdot \varphi_{Mi}^{\prime}} + {\sum\limits_{j = 1}^{n}{\theta_{ij} \cdot \varphi_{Mj}^{\prime}}}} \right)} \cdot \overset{..}{s +}}{\underset{\underset{\text{:} = {c_{1,i}(s)}}{︸}}{\left. \left( {{\theta_{ii} \cdot \varphi_{Mi}^{\prime}} + {\underset{j = 1}{\overset{n}{\sum\lbrack}}\theta_{ij} \cdot \varphi_{Mj}^{''}} + {c_{ij} \cdot \varphi_{Mi}^{\prime} \cdot \varphi_{Mj}^{\prime}} + {z_{ij} \cdot \varphi_{Mj}^{\prime 2}}} \right\rbrack \right)} \cdot {\overset{.}{s}}^{2}}}} & (18) \end{matrix}$

The time derivative of the driving torques is calculated as: $\begin{matrix} {d_{Mi} = {{{\underset{\underset{\text{:} = {c_{2,1}{(s)}}}{︸}}{\left( {{\theta_{ii} \cdot \varphi_{Mi}^{\prime}} + {\sum\limits_{j = 1}^{n}{\theta_{ij} \cdot \varphi_{Mj}^{\prime}}}} \right)} \cdot \overset{...}{s +}}{3 \cdot \underset{\underset{\text{:} = {c_{1,i}(s)}}{︸}}{\left( {{\theta_{ii} \cdot \varphi_{Mi}^{\prime}} + {\sum\limits_{j = 1}^{n}\left\lbrack {\theta_{ij} \cdot \varphi_{Mj}^{''}} \right\rbrack}} \right)} \cdot \overset{.}{s} \cdot \overset{..}{s}}} + {\underset{\underset{\text{:} = {c_{3,i}(s)}}{︸}}{\left( {{\theta_{ii} \cdot \varphi_{Mi}^{\prime}} + {\sum\limits_{j = 1}^{n}{\theta_{ij} \cdot \varphi_{Mj}^{''}}}} \right)} \cdot \overset{.}{s^{3}}}}} & (19) \end{matrix}$ so that no drive is overloaded, it must hold that:

-   ={tilde over (d)}_(Mi,max)≦d_(Mi)≦d_(Mi,max) ∀i and ={dot over     ({tilde over (d)})}_(Mi,max)≦{dot over (d)}_(Mi)≦{dot over     (d)}_(Mi,max)□i -   ={tilde over (d)}_(Mi,max) maximum possible driving torque in     negative direction (specified by the manufacturer) -   d_(Mi,max): maximum possible driving torque in positive direction     (specified by the manufacturer) -   i: ith drive axis of the machine (i=1 . . . n)

The observance of these conditions leads to: φ_(Mi)=φ_(Mi)(s)  (14) −{dot over ({tilde over (φ)})}_(Mi,max) ≦e′ _(i) ·{dot over (s)}≦{dot over (φ)} _(Mi,max) ∀i  (15) −{tilde over (d)} _(Mi,max) ≦c _(i)(s)·{dot over (s)}² +c ₂(s)·{umlaut over (s)}≦d_(Mi,max) ∀i  (16) −{dot over ({tilde over (d)})}_(Mi,max) ≦c _(3,i)(s)·{dot over (s)} ³+3·c _(1,i)(s)·{dot over (s)}·{umlaut over (s)}+c _(2,1)(s)·

≦{dot over (d)} _(Mi,max) ∀i  (17) −{dot over ({tilde over (φ)})}_(mi,max): maximum possible angular velocity in the negative direction (specified by the manufacturer)

-   {dot over (φ)}_(Mi,max): maximum possible angular velocity in the     positive direction (specified by the manufacturer) -   {dot over (d)}_(Mi,max): maximum possible temporal change in the     driving torque in the positive direction (specified by the     manufacturer) -   {dot over ({tilde over (d)})}_(Mi,max): maximum possible temporal     change in the driving torque in the negative direction (specified by     the manufacturer) -   i: ith axis of the machine(i=1 . . . n)

The driving torque exerted by the drive motor of a drive axis implicitly effects the acceleration of a number of other drive axes. A movement of an axis then causes disturbing influences on the movement of the other drive axes. This can be taken into account adequately when planning the movement guidance only when the mass property and inertia properties of the machine are known. Furthermore, use is frequently made of machines whose mass properties and inertia properties are not constant in the working space of the machine. The reason for this can lie, inter alia, in kinematics that is nonlinear in principle, or masses which change because of different tools that are being exchanged during operation.

If the mass properties or inertia properties are not known, the data can be determined and/or estimated manually (experimentally, “trial and error”). If a safety coefficient that is necessarily to be generously dimensioned, the result is thus restrictions that are too restrictive and do not utilize the dynamics of the drive system optimally. The actually maximum possible acceleration values therefore cannot be attained.

If information is available in relation to the mechanical design (for example in the form of construction drawings), it is then possible to describe the machine mathematically using the means of analytical mechanics. For this purpose, kinematics and kinetics of the machine are formulated in the form of movement differential equations that can be used to determine the mass properties and inertia properties. This theoretical modeling is mostly very complicated, since the mathematic expressions become very voluminous, even for simple mechanical designs. In addition, machine kinematics are known for which there exists no analytical description.

At present, only a single machine datum for the entire movement guidance is provided kinetically per drive axis of the machine for deceleration on the movement path S. If the mass properties and inertia properties of a machine change in the working area, to date the maximum possible path of generation[??] on the movement path S has been determined by means of a worst case estimate that then holds for the entire working area of the machine and for the entire movement path S. Consequently, the possible dynamics are thereby not utilized optimally and the resulting curving period is longer than strictly necessary.

In order to limit the time derivatives of the nominal motor position angles, equations (14)-(17) are solved for the path length {dot over (s)}, the path speed S, the path acceleration {umlaut over (s)}, and the path jerk

, or these variables are determined and taken into account during the movement guidance with regard to the restriction of the respective variable by the controller of the machine. As already described above, for this purpose a constant maximum path acceleration {umlaut over (s)} has been prescribed for the entire movement operation of the machine element 8 on the movement path S in the case of commercial controllers currently being used. By contrast therewith, in the present invention use is always made in equations (14) to (17) of the coefficients c_(i) valid at the respective working points, and in such a way the movement of the machine element 8 proceeds at each working point for the maximum possible path acceleration {umlaut over (s)} and/or the maximum possible path jerk

and/or the maximum possible path speed {dot over (s)}. Of course, there are yet other possibilities taking account of restrictions in a movement guidance in addition to the above named Lagrange equations such as, for example Newton-Euler equations or Hamilton equations, etc. but these all use the abovementioned coefficients c_(i) in identical or modified form.

It may be remarked at this juncture that it is, of course, possible to apply the use not with restriction to Cartesian coordinates, but to any desired contexts of as many axes as desired whose movements are coupled via one or more common parameter, such as is often the case with printing machines, weaving looms, gear hobbing machines or the like. Of course, all the regularities apply not only to rotary drives but also to linear drives where, inert masses act instead of the moments of inertia.

It is the object of the invention to provide a method for optimum movement guidance of a movable machine element of a numerically controlled machine tool or production machine.

The object is achieved for the method according to the invention by virtue of the fact that support points are defined in the working area of the machine, the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element being determined or prescribed at each support point, and the movement of the machine element on the movement path being carried out with the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element.

The method according to the invention has substantial advantages by comparison with the prior art. Thus, the method according to the invention can be used to determine the full limiting values of the maximum permissible accelerations of the drive axes, and to render the control of the machine accessible. The movement guidance can always plan and carry out the movement optimally in terms of time, in particular with the actual possible acceleration capability of the drive axes and the drive motors. Furthermore, the acceleration capability can be determined very accurately. The limiting values are physically expedient in any case, and so it is possible to dispense with safety coefficients. The traveling movement of the machine element can therefore be carried out optimally in terms of time.

The method according to the invention can be used to determine the acceleration capability of the drive axes for the entire working area of the machine which can, for example be subdivided by a three-dimensional grating. The controller can plan the movement operation with the restrictions valid for the respective working point. Much shorter machining times result thereby, particularly in the case of conditions of mass properties and inertia properties of the machine that vary in the working area.

It proves to be advantageous for the invention that the support points in the working area of the machine are defined by a grid-like subdivision, or are prescribed by a user individually, particularly for a specific movement path S, since it is thereby possible to define the support points in the working area in a particularly efficient fashion.

It proves to be advantageous for the invention that for working points that are not support points, the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element at the support points are used to carry out a smoothing of these maximum possible variables, and the movement of the machine element for working points that are not support points is carried out with the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element. This ensures that only a relatively small number of support points need to be defined on the movement path, and that nevertheless an optimum movement guiding of the machine element is ensured.

Furthermore, it proves to be advantageous for the invention that the determination of the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element is carried out for each drive axis of the machine with the aid of the maximum possible driving torque of the drive motor and of an inertia matrix. A determination of the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element is particularly simple with the aid of an inertia matrix.

It proves to be advantageous in this context that the inertia matrix is determined for each support point in such a way that in a first step a support point of the machine element is approached, and that in a second step a respective excitation function is used to excite the position control circuits of the drive axis, the current motor position angle and the current driving torque or the current torque value being simultaneously stored over a specific period for each drive axis, these stored variables being used per drive axis to identify the coefficients of the driving torque and of the motor position angle, the second step being subsequently repeated in accordance with the number, reduced by the factor 1, of the drive axes with a respectively varied excitation function, and the acceleration and torque coefficients thus being determined, the inertia matrix for the respective position point being determined in a third step from the acceleration and torque coefficients. Here, the inventors have provided a particularly simple, efficient and reliable method for determining the inertia matrix.

Furthermore, it proves to be advantageous for the invention that in the case of a machine with constant inertial conditions, the determination of the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element, is carried out with the aid of a single support point. The period required for carrying out the method can be sharply reduced thereby.

It proves to be advantageous for a further embodiment of the invention that the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element of the machine are determined at the support points and/or working points with the aid of a simulation system, and the movement of the machine element on the movement path carried out with the maximum possible path jerk and/or the maximum possible path acceleration and/or the maximum possible path speed of the machine element. If there is a possibility of determining the abovenamed variables in advance with the aid of a simulation system, these variables can also be prescribed directly to the controller of the machine without them having to be determined firstly by means of a traveling movement.

An exemplary embodiment of the invention is illustrated in the drawing and will be explained in more detail below. In this case:

FIG. 1 shows a drive system of a two-axis machine,

FIG. 2 shows a movement path S of a machine element,

FIG. 3 shows a three-memory system for determining the movement guidance,

FIG. 4 shows the method according to the invention including the determination of the inertia matrix,

FIG. 5 shows two position control loops of the machine, including a machine simulation, and

FIG. 6 shows a working area of the machine with grid-like subdivisions.

FIG. 4 depicts the method according to the invention in the form of a block diagram. A definition of the support points is initially performed in a function block 28.

To this end, FIG. 6 shows in general terms that the working area 31 of the machine in which movement operation of the machine element takes place is subdivided by means of a three-dimensional grid, a linear subdivision being illustrated in FIG. 6. Of course, any other desired forms of grid and subdivisions are also possible. Particularly at critical points for the movement guidance, it can be expedient to adapt the identity of the support points about the movement path S. The points of intersection of the grid line yield the support points, of which only one support point 32 is enumerated in FIG. 6, for the sake of clarity. A three-dimensional grid which has degenerated to a planar grid is used here for the two-axis machine (only a two-dimensional movement path S is possible) used in the exemplary embodiment.

A first support point is subsequently approached in function block 21 by the machine element 8. The mass properties and inertia properties of the machine are now to be determined below in the form of a so-called inertia matrix M. At the respective support point, this supplies the valid linear relationship between the acceleration of the machine element or the drive motors and the respective driving torques required for the purpose and which are to be applied by the drive motors. The machine is operated for this purpose with a closed position control loop.

FIG. 5 illustrates the two position control loops of the two-axis machine (assumed by way of example) in accordance with FIG. 1, including a simulation of the mechanism 11 of the machine. The position control loop of the drive axis 6 a from FIG. 1 is illustrated in the top half of FIG. 5, while the position control loop of the drive axis 6 b is illustrated in the bottom half of FIG. 5. In order to control the motor position angle ^(SM) _(M1) of the drive axis 6 a or to control the motor position angle φ_(M2) of the drive axis 6 b, the upper position control is fed a motor position angle φ_(M1) and the lower position control is fed the motor position angle φ_(M2) respectively. The difference between motor position angle φ_(M1) or φ_(M2) and nominal motor position angle φ_(MS1) or φ_(MS2) is respectively fed to a proportional element 15 a or 15 b and multiplied by a proportionality factor. Taking the motor position angle φ_(M1) or φ_(M2), a differentiator 20 a or 20 b differentiates the motor position angle φ_(M1) or φ_(M2) and multiplies it by the factor ½π, thereby determining a motor speed n_(M1) or n_(M2). The difference between motor speed n_(m1) or n_(M2) and the output signal of the proportional element 15 a or 15 b is fed to a respectively associated proportional-integral-controller 16 a or 17 b that calculates a torque d_(S1) or d_(S2) as output signal. The torque d_(S1) or d_(S2) is fed in accordance with FIG. 4 to a first-order delay block 17 a or 17 b.

As output variable, the first-order delay block 17 a outputs the driving torque d_(M1) of the drive motor 4 a in accordance with FIG. 1. As output variable, the first-order delay block 17 b outputs the driving torque d_(M2) of the drive motor 4 b in accordance with FIG. 1. The mass properties and inertia properties of the machine are simulated in the function block 11 depicted by dots and dashes. This simulation is essentially performed by a function block 12 that represents the inverse of the inertia matrix M. Two driving torques d_(M1) or d_(M2) are multiplied by the inverse of the inertia matrix M and in such a way the motor angular acceleration {umlaut over (φ)}_(M1) or {umlaut over (φ)}_(M2) is calculated and output.

The motor angular velocity {dot over (φ)}_(M1) {dot over (φ)}_(M2) is calculated from the motor angular acceleration {umlaut over (φ)}_(M1) or {umlaut over (φ)}_(M2) with the aid of the integrators 13 a and 13 b. The motor position angle φ_(M1) or φ_(M2) is calculated from the motor angular velocity {dot over (φ)}_(M1) and {dot over (φ)}_(M2) by integrating once again with the aid of the integrators 14 a and 14 b.

It may be remarked at this juncture that, in the case of a real machine the respective motor position angle φ_(M1) or φ_(M2) are self-evidently made available as measured variables to the position control loops by corresponding transmitters allocated on the drive motors 4 a or 4 b. In order to permit the viewer a better functional understanding of the inertia matrix M, the mechanism 11 of the machine has been simulated in FIG. 5 in the form of the inverse of the inertia matrix M and two respectively downstream integrators 13 a, 14 a or 13 b, 14 b inside the position control loop of the machine. In a real machine, the inverters 3 a or 3 b in accordance with FIG. 1 generate the two driving torques d_(M1) and d_(M2) in conjunction with the motors 4 a or 4 b.

FIG. 5 further illustrates four memories 18 a, 18 b, 19 a and 19 b, that store the values of the motor position angles φ_(M1) or φ_(M2) and the values of the driving torques d_(M1) and d_(M2) in accordance with FIG. 5.

The coupling of the drive axes via the inverse of the inertia matrix M acts in the closed position control loop not only via transmission paths from one input each to all outputs of the control system, but there exists in addition a mutual influence between the upper and lower position control loops.

Back to FIG. 4. After the approach to the support point, an excitation function f(t) is used in function block 22 to simultaneously excite all the drive axes of the machine with the aid of the excitation function f(t) respectively assigned to the drive axis. The excitation function f(t) generally has in this case a form in accordance with the relationship f(t)=a+b·t+c·cos (2πft)+d·sin (2·πft)  (1)

-   a constant offset -   b constant gradient -   c amplitude of the cos component -   d amplitude of the sin component -   f frequency of the excitation in Hertz.

Via the nominal motor position angle φ_(MS1) or φ_(MS2) the excitation function f(t) is fed into the two position control loops, it being possible to select the parameters a, b, c and d differently for the individual drive axes of the machine, whereas it is necessary by contrast, to select an identical frequency for all the drive axes. A value of zero is expediently assumed for the parameter a since the parameter a would otherwise effect only a constant deviation from the support point, it to be the parameter a has already been used in advance in order to approach the instantaneous support point. The specifications of the individual machine dictate how the parameters are to be selected individually. The deflection from the support point by means of the excitation function f(t) should, however, be kept small so that it is possible to assume a linear system performance overall. Thus, in the steady-state condition all the variables and signals in the system in the position control loop have a harmonic characteristic of the same frequency. The function block 23 waits for the settling time of the system, before the recording of the measured values begins in function block 24.

Upon expiry of the settling time, which is a function of the frequency of the excitation function f(t) and the dynamics of the position control loop, the motor position angle φ_(M1) and the driving torque d_(Mi) are respectively recorded and stored in each case for all the position control loops and drive axes of the machine. The memories 18 a, 18 b, 19 a and 19 b are used for storage in the exemplary embodiment. The abovenamed variables should in this case be stored over a few periods of the excitation function f(t). The index i (i=1 . . . n) designates the number of the respective drive axis. i=1 and i=2 for the two-axis machine specified in the exemplary embodiment. It may be mentioned at this juncture that instead of the two-axis machine of the exemplary embodiment it is also possible to use a machine with as many axes as desired.

Subsequently, the coefficients ĉ_({umlaut over (φ)}i) and {circumflex over (d)}_({umlaut over (φ)}i) of the motor angular acceleration {umlaut over (φ)}_(M1) as well as the estimated amplitudes of the cosine and sine components ĉ_(di) and {circumflex over (d)}_(di) of the driving torque d_(Mi) of the respective drive axis are identified in the function block 25. As a consequence of the linearization already mentioned above, the following formulation with corresponding coefficients can be specified for the driving torques d _(Mi) =â _(di) +{circumflex over (b)} _(di) t+ĉ _(di) cos (ωt)+{circumflex over (d)} _(di) sin (ωt)  (2)

-   d_(Mi) measured or stored characteristic of the driving torque of     the ith drive axis (i=1 . . . n) -   â_(di) estimated constant offset of the driving torque of the ith     drive axis (i=1 . . . n) -   {circumflex over (b)}_(di) estimated constant gradient of the     driving torque of the ith drive axis (i=1 . . . n) -   ĉ_(di) estimated amplitude of the cos component of the driving     torque of the ith drive axis (i=1 . . . n) -   {circumflex over (d)}_(di) estimated amplitude of the sin component     of the driving torque of the ith drive axis (i=1 . . . n).

It is also possible in a corresponding way to specify the formulation as follows for the characteristic of the motor position angle φ_(Mi) =â _(φi) +{circumflex over (b)} _(φi) t+ĉ _(φi) cos (ωt)+{circumflex over (d)} _(φi) sin (ωt)  (3)

-   φ_(Mi) measured or stored characteristic of the motor position angle     of the ith drive axis (i=1 . . . n) -   â_(φi) estimated constant offset of the motor position angle of the     ith drive axis (i=1 . . . n) -   {circumflex over (b)}_(φi) estimated constant gradient of the motor     position angle of the ith drive axis (i=1 . . . n) -   ĉ_(φi) estimated amplitude of the cos component of the motor     position angle of the ith drive axis (i=1 . . . n) -   {circumflex over (d)}_(φi) estimated amplitude of the sin component     of the motor position angle of the ith drive axis (i=1 . . . n).

The relationship 2 and the relationship 3 can be set up for each stored sample at the sampling instants t₁, t₂ . . . to t_(N). It is thereby possible to specify two systems of equations 4 a and 4 b. $\begin{matrix} {{\underset{\underset{\_}{A}}{\underset{︸}{\begin{bmatrix} 1 & t_{1} & {\cos\left( {\omega\quad t_{1}} \right)} & {\sin\left( {\omega\quad t_{1}} \right)} \\ 1 & t_{2} & {\cos\left( {\omega\quad t_{2}} \right)} & {\sin\left( {\omega\quad t_{2}} \right)} \\ \vdots & \vdots & \vdots & \vdots \\ 1 & t_{v} & {\cos\left( {\omega\quad t_{v}} \right)} & {\sin\left( {\omega\quad t_{v}} \right)} \\ \vdots & \vdots & \vdots & \vdots \\ 1 & t_{N} & {\cos\left( {\omega\quad t_{N}} \right)} & {\sin\left( {\omega\quad t_{N}} \right)} \end{bmatrix}}}\underset{\underset{\underset{\_}{x}}{︸}}{\begin{bmatrix} {\hat{a}}_{di} \\ {\hat{b}}_{di} \\ {\hat{c}}_{di} \\ {\hat{d}}_{di} \end{bmatrix}}} = \underset{\underset{\underset{\_}{b}}{︸}}{\begin{bmatrix} {d_{Mi}\left( t_{1} \right)} \\ {d_{Mi}\left( t_{2} \right)} \\ \vdots \\ {d_{Mi}\left( t_{v} \right)} \\ \vdots \\ {d_{Mi}\left( t_{N} \right)} \end{bmatrix}}} & \left( {4a} \right) \\ {{\underset{\underset{\_}{A}}{\underset{︸}{\begin{bmatrix} 1 & t_{1} & {\cos\left( {\omega\quad t_{1}} \right)} & {\sin\left( {\omega\quad t_{1}} \right)} \\ 1 & t_{2} & {\cos\left( {\omega\quad t_{2}} \right)} & {\sin\left( {\omega\quad t_{2}} \right)} \\ \vdots & \vdots & \vdots & \vdots \\ 1 & t_{v} & {\cos\left( {\omega\quad t_{v}} \right)} & {\sin\left( {\omega\quad t_{v}} \right)} \\ \vdots & \vdots & \vdots & \vdots \\ 1 & t_{N} & {\cos\left( {\omega\quad t_{N}} \right)} & {\sin\left( {\omega\quad t_{N}} \right)} \end{bmatrix}}}\underset{\underset{\underset{\_}{x}}{︸}}{\begin{bmatrix} {\hat{a}}_{\varphi\quad i} \\ {\hat{b}}_{\varphi\quad i} \\ {\hat{c}}_{\varphi\quad i} \\ {\hat{d}}_{\varphi\quad i} \end{bmatrix}}} = \underset{\underset{\underset{\_}{b}}{︸}}{\begin{bmatrix} {\varphi_{Mi}\left( t_{1} \right)} \\ {\varphi_{Mi}\left( t_{2} \right)} \\ \vdots \\ {\varphi_{Mi}\left( t_{v} \right)} \\ \vdots \\ {\varphi_{Mi}\left( t_{N} \right)} \end{bmatrix}}} & \left( {4b} \right) \end{matrix}$

-   t_(v) instants at which the measured values have been recorded (v=1     . . . N)

Estimated values for the coefficients â_(di), {circumflex over (b)}_(di), ĉ_(di), {circumflex over (d)}_(di) or â_(φi), {circumflex over (b)}_(φi), ĉ_(φi), {circumflex over (d)}_(φi) can now be determined with the aid of the method at least squares. The respective coefficients are thus yielded in accordance with the relationship x=( A ^(T) A )⁻¹ S ^(T) b   (5)

-   A ^(T): transpose of the matrix A -   A ⁻¹: inverse of the matrix A, -   x representing the vector of the respective coefficients.

What is obtained is thus a set of coefficients for the motor position angle φ_(Mi) and the driving torque d_(Mi) for each drive motor.

The corresponding coefficients ĉ_({umlaut over (φ)}l) and {circumflex over (d)}_({umlaut over (φ)}l) of the motor angular acceleration {umlaut over (φ)}i_(Mi) can be calculated from those of the motor position angle in accordance with the relationships 6 and 7. ĉ _({umlaut over (φ)}l) =−w ² ĉ _(φl)  (6) {circumflex over (d)}_({umlaut over (φ)}l) =−w ² {circumflex over (d)} _(φl)  (7)

-   ω: angular frequency (ω=2πf)

It holds for the relationship between driving torque, inertia matrix M and motor angular acceleration that: $\begin{matrix} {\underset{\underset{\underset{\_}{d_{M}}}{︸}}{\begin{bmatrix} d_{M\quad 1} \\ d_{M\quad 2} \\ \vdots \\ d_{M\quad n} \end{bmatrix}} = {\underset{\underset{\underset{\_}{M}}{︸}}{\begin{bmatrix} m_{11} & m_{12} & \cdots & m_{1n} \\ m_{21} & m_{22} & \quad & m_{2n} \\ \vdots & \quad & ⋰ & \vdots \\ m_{n\quad 1} & m_{n\quad 2} & \cdots & m_{nn} \end{bmatrix}}\underset{\underset{\underset{\_}{{\overset{..}{\varphi}}_{M}}}{︸}}{\begin{bmatrix} {\overset{¨}{\varphi}}_{M\quad 1} \\ {\overset{¨}{\varphi}}_{M\quad 2} \\ \vdots \\ {\overset{¨}{\varphi}}_{Mn} \end{bmatrix}}}} & (8) \end{matrix}$

-   m_(ij): moment of inertia

The coefficients ĉ_({umlaut over (φ)}i) and {circumflex over (d)}_({umlaut over (φ)}i) of the motor angular acceleration {umlaut over (φ)}_(Mi) as well a the coefficients ĉ_(di) and {circumflex over (d)}_(di) of the driving torque d_(Mi) are determined n times in a repetition loop 26 in accordance with the number n of drive axes, a change in the parameters b, c and d of the respective excitation function f(t) being performed with each repetition. After the coefficients of all the drive axes have been determined n times, the inertia matrix M is determined inside the function block 26.

Upon consideration of the relationship 8, a relationship can be set up between the functions for the driving torques and motor angular accelerations with the aid of the relationships 2 and 3 (see relationship 9). $\begin{matrix} {d_{Mi} = {{\sum\limits_{j = 1}^{n}{m_{ij}{\hat{\overset{¨}{\varphi}}}_{Mj}}} = {{\hat{a}}_{di} + {{\hat{b}}_{di}t} + {{\hat{c}}_{di}{\cos\left( {\omega\quad t} \right)}} + {{\hat{d}}_{di}{\sin\left( {\omega\quad t} \right)}}}}} & (9) \end{matrix}$

A comparison of coefficients delivers the relationships 10 a to 10 d for the coefficients. $\begin{matrix} {{\hat{a}}_{di} = {\sum\limits_{j = 1}^{n}{m_{ij}{\hat{a}}_{\overset{¨}{\varphi}j}}}} & \left( {10a} \right) \\ {{\hat{b}}_{di} = {\sum\limits_{j = 1}^{n}{m_{ij}{\hat{b}}_{\overset{¨}{\varphi}j}}}} & \left( {10b} \right) \\ {{\hat{c}}_{di} = {\sum\limits_{j = 1}^{n}{m_{ij}{\hat{c}}_{\overset{¨}{\varphi}j}}}} & \left( {10c} \right) \\ {{\hat{d}}_{di} = {\sum\limits_{j = 1}^{n}{m_{ij}{\hat{d}}_{\overset{¨}{\varphi}j}}}} & \left( {10d} \right) \end{matrix}$

All that is relevant in this case to the determination of the inertia matrix M are the coefficients that include the amplitude of the sinusoidal and cosinusoidal parts in the relationships 2 and 3, since the essential components of the excitation and excitation function f(t) are included here. As already stated previously, the individual coefficients are determined by traversing the function blocks 22 to 25 n times. The coefficients yield the system of equations 11, one row being produced in the system of equations 11 per drive axis, and the index parameter n signifying the total number of all drive axes.

MΦ=D

with the matrix of the acceleration coefficients $\underset{\_}{\Phi} = {\begin{bmatrix} {\hat{c}}_{\overset{¨}{\varphi}1}^{(1)} & {\hat{c}}_{\overset{¨}{\varphi}1}^{(2)} & \cdots & {\hat{c}}_{\overset{¨}{\varphi}1}^{(n)} & {\hat{d}}_{\overset{¨}{\varphi}1}^{(1)} & {\hat{d}}_{\overset{¨}{\varphi}1}^{(2)} & \cdots & {\hat{d}}_{\overset{¨}{\varphi}1}^{(n)} \\ {\hat{c}}_{\overset{¨}{\varphi}2}^{(1)} & {\hat{c}}_{\overset{¨}{\varphi}2}^{(2)} & \quad & {\hat{c}}_{\overset{¨}{\varphi}2}^{(n)} & {\hat{d}}_{\overset{¨}{\varphi}2}^{(1)} & {\hat{d}}_{\overset{¨}{\varphi}2}^{(2)} & \quad & {\hat{d}}_{\overset{¨}{\varphi}2}^{(n)} \\ \vdots & \quad & ⋰ & \vdots & \vdots & \quad & ⋰ & \vdots \\ {\hat{c}}_{\overset{¨}{\varphi}n}^{(1)} & {\hat{c}}_{\overset{¨}{\varphi}n}^{(2)} & \cdots & {\hat{c}}_{\overset{¨}{\varphi}n}^{(n)} & {\hat{d}}_{\overset{¨}{\varphi}n}^{(1)} & {\hat{d}}_{\overset{¨}{\varphi}n}^{(2)} & \cdots & {\hat{d}}_{\overset{¨}{\varphi}n}^{(n)} \end{bmatrix}.}$ and the matrix of the torque coefficients $\underset{\_}{D} = \begin{bmatrix} {\hat{c}}_{d\quad 1}^{(1)} & {\hat{c}}_{d\quad 1}^{(2)} & \cdots & {\hat{c}}_{d\quad 1}^{(n)} & {\hat{d}}_{d\quad 1}^{(1)} & {\hat{d}}_{d\quad 1}^{(2)} & \cdots & {\hat{d}}_{d\quad 1}^{(n)} \\ {\hat{c}}_{d\quad 2}^{(1)} & {\hat{c}}_{d\quad 2}^{(2)} & \quad & {\hat{c}}_{d\quad 2}^{(n)} & {\hat{d}}_{d\quad 2}^{(1)} & {\hat{d}}_{d\quad 2}^{(2)} & \quad & {\hat{d}}_{d\quad 2}^{(n)} \\ \vdots & \quad & ⋰ & \vdots & \vdots & \quad & ⋰ & \vdots \\ {\hat{c}}_{d\quad n}^{(1)} & {\hat{c}}_{d\quad n}^{(2)} & \cdots & {\hat{c}}_{d\quad n}^{(n)} & {\hat{d}}_{d\quad n}^{(1)} & {\hat{d}}_{d\quad n}^{(2)} & \cdots & {\hat{d}}_{d\quad n}^{(n)} \end{bmatrix}$

The inertia matrix M is now yielded by the method of least squares in accordance with relationship 12. M=DΦ ^(T)(ΦΦ ^(T))⁻¹  (12)

The determination of the inertia matrix M for the support point is thus concluded. The method is now repeated for each support point until an inertia matrix M is determined for each defined support point, something which is indicated by the repetition loop 27 in FIG. 4.

The coefficients c₁, c₂, c₃ of equations 18 and 19 can be determined from the moment of inertia m_(ij) of the inertia matrix M. The values of the moments of inertia m_(ij) correspond to the coefficients θ_(ij) of equations 18 and 19. It is possible in such a way to determine the maximum values for the path jerk

, the path acceleration {umlaut over (s)} and the path speed {dot over (s)} in accordance with the equations 14 to 17.

The vector d _(M)=[d_(M1) . . . d_(Mn)] of the driving torques, which includes the driving torques of the drive motors d_(M1) to d_(Mn), is known from data provided, for example, by the motor manufacturer. Consequently, the maximum possible acceleration of the drive motor can now be calculated for each drive axis i in accordance with relationships 14 to 19. With reference to the exemplary embodiment, the maximum possible path acceleration {umlaut over (s)} of the machine, for example can now be calculated as a function of support point.

The maximum possible path acceleration S can be determined for points on the movement path S in accordance with FIG. 2 that are not support points by means of smoothing the values determined at the support points. The maximum possible path jerk

and/or the maximum possible path speed {dot over (s)} for points on the movement path S in accordance with FIG. 2 that are not support points can also be determined in this same way. It is thereby ensured that only a relatively small number of support points need be defined on the movement path, and that an optimum movement guidance of the machine element is ensured nevertheless. The smoothing can be carried out in this case, for example by means of interpolation, extrapolation, averaging or similar methods.

From now on the movement of the machine element along the prescribed movement path S can always be carried out with the maximum possible path acceleration, something which is indicated by the function block 30 in FIG. 4.

Alternatively, instead of the driving torque d_(M1) or d_(M2) it is also possible to store in FIG. 4 the torque d_(S1) or d_(S2) in the memory 18 a or 18 b, something which is respectively indicated in FIG. 4 by a dashed arrow. The inertia matrix M can then be determined alternatively in an identical way with the aid of the torques instead of the driving torques.

The method according to the invention can be performed in this case upon demand by the user during commissioning of the machine or in cyclical or prescribed intervals or with reference to the situation.

The spaces of the individual support points can be optimized, for example in such a way that the spacings of individual support points are selected to be smaller at particularly critical junctures, whereas the spacings can be selected to be larger at uncritical junctures, for example when traveling straight ahead along an axis.

A special case obtains when given a machine with constant inertia conditions. A single working point then suffices, for example, in order to determine the maximum possible path acceleration {umlaut over (s)}. All the remaining points of the working area then automatically have the same maximum possible path acceleration {umlaut over (s)}. The applies equally to the path jerk

and the path speed {dot over (s)}.

If a suitable simulation system is available with the aid of which the maximum possible path jerk

and/or the maximum possible path acceleration {umlaut over (s)} and/or the maximum possible path speed {dot over (s)} of the machine element of the machine can be determined in advance at the support points and/or working points on the movement path S of the machine element, these variables can also be prescribed directly for the controller of the machine without this first having to be determined by means of a traveling movement.

It may be pointed out at this juncture that the term machine tools is to be understood as meaning, for example, single-axis or multi-axis lathes, milling machines, drilling machines or grinding machines. Machine tools are also deemed to encompass machining centers, linear and rotary transfer machines, laser machines or rolling-up tools and gear-cutting machines. Common to them all is that a material is machined, it being possible to execute this machine on a number of axes. Counting among the production machines are, for example, textile, plastic, wood, glass, ceramic or stone-working machines. Machines in the technologies of plastic shaping, metal forming, packaging, printing, material-handling, pumping, ventilation and hoisting as well as robots likewise belong to the production machines. 

1. A method for guiding the movement of a movable machine element of a machine, said machine element having at least one drive axis and a prescribed movement path in a working area, said working area having support points, said method comprising the steps of: associating a support point with a respective maximum value for at least one of the following: a maximum path jerk of the machine element, and/or the a maximum path acceleration of the machine element, and/or the a maximum path speed of the machine element, the respective maximum value being produced for each drive axis of the machine element using a maximum driving torque of the drive motor and an inertia matrix: and moving the machine element (on the movement path in accordance with the respective associated maximum value and/or the maximum possible path acceleration ({umlaut over (s)}) and/or the maximum possible path speed ({dot over (s)}) of the machine element (8).
 2. The method of claim 1, further comprising the step of defining a grid-like subdivision of the working area of the machine wherein support points in the working area of the machine are defined by a the grid-like subdivision of the working area.
 3. The method of claim 1, further comprising the steps of: defining working points on the working area that are not support points, and/or the maximum possible path acceleration ({umlaut over (s)}) and/or the maximum possible path speed ({dot over (s)}) of the machine element (8) determined at the determining a respective smoothing maximum value associated with each working point using respective maximum values associated with support points; moving the machine element at a working point in accordance with the respective smoothing maximum value associated with the working point and/or the maximum possible path acceleration ({umlaut over (s)}) and/or the maximum possible path speed ({dot over (s)}) of the machine element (8).
 4. (canceled)
 5. The method of claim 1, further comprising the steps of: using a respective excitation function to excite the position control circuits of the drive axes over a given period of time when the machine element approaches a support point; simultaneously storing motor position angle and driving torque or torque values for each respective drive axis when the machine element approaches the support point: using respective stored values to produce coefficients of the driving torque and coefficients of the motor position angle for each drive axis using the respective excitation function; thus being determined, determining an inertia matrix for the respective support point using the acceleration and torque coefficients produced for each drive axis.
 6. The method of claim 1, wherein the inertial conditions of the a machine element are constant inertial conditions, further comprising the step of: associating the respective maximum value associated with a given and/or the maximum possible path acceleration ({umlaut over (s)}) and/or the maximum possible path speed ({dot over (s)}) of the machine element (8), is carried out with the aid of a single support point with another support point.
 7. The method of claim 1, further comprising the step of: determining a respective maximum value and/or the maximum possible path acceleration ({umlaut over (s)}) and/or the maximum possible path speed ({dot over (s)}) of the machine element (8) of the machine are determined at a support point using a simulation system, and/or the maximum possible path acceleration ({umlaut over (s)}) and/or the maximum possible path speed ({dot over (s)}) of the machine element (8).
 8. The method of claim 1, further comprising the step of: defining a movement path in the working area of the machine, support points in the working area of the machine being defined by the movement path of the machine element in the working area.
 9. Apparatus for guiding the movement of a movable machine element of a machine, said machine element having a prescribed movement path in a working area, said working area including support points, said apparatus comprising: means for associating a support point with a respective maximum value for at least one of the following: a maximum path jerk of the machine element, a maximum path acceleration of the machine element, a maximum path speed of the machine element; means for moving the machine element on the movement path in accordance with said respective associated maximum value.
 10. The apparatus of claim 9, further comprising means for defining a grid-like subdivision of the working area of the machine wherein support points in the working area of the machine are defined by said grid-like subdivision of the working area.
 11. The apparatus of claim 9, further comprising: means for defining working points on the working area that are not support points; means for determining a respective smoothing maximum value associated with at least one of said working points using at least one of said maximum values associated with support points; and means for moving the machine element at a working point in accordance with the respective smoothing maximum value associated with said working point.
 12. The apparatus of claim 9, further comprising: means for using a respective excitation function to excite the position control circuits of the drive axes over a given period of time when the machine element approaches a support point; means for simultaneously storing motor position angle and driving torque or torque values for each respective drive axis when the machine element approaches the support point; means for using respective stored values to produce coefficients of the driving torque and coefficients of the motor position angle for each drive axis, using the excitation function of the respective drive axis; means for determining an inertia matrix for the support point using the acceleration and torque coefficients produced for each drive axis.
 13. The apparatus of claim 9, wherein the inertial conditions of the machine element are constant inertial conditions, said apparatus further comprising means for associating the respective maximum value associated with a given support point with another support point.
 14. The apparatus of claim 9, further comprising means for determining a respective maximum value at a support point using a simulation system.
 15. The apparatus of claim 9, further comprising means for defining a movement path in the working area of the machine, support points in the working area of the machine being defined by the movement path of the machine element in the working area. 